<h1>{$this->getTitle()}</h1>

/* <p>Export {count($equations)===1 ? "d'un lot" : 'de '.count($equations).' lots'} de notices</p> */

<form action="{$this->action}" class="form">
    <div test="$error" class="hasError errorField">
        <ul>
            <loop on="$error" as="$error">
                <li>$error</li>
            </loop>
        </ul>
    </div>
    /* 
        Définit un slot qui pourra être utilisé par un module descendant pour
        "injecter" d'autres paramètres dans le formulaire de recherche.
        C'est par exemple le cas de DatabaseInspector qui ajoute un champ caché
        indiquant le nom de la base utilisée.
    */
    <slot name="otherparams" />
    
    /*
        S'il n'y a qu'un seul format d'export disponible, inutile de demander à 
        l'utilisateur de choisir.
        Si le nombre de réponses obtenues dépasse le max indiqué pour le format,
        indique la limite à l'utilisateur.
    */
    <if test="{count(Config::get('formats'))==1}">
        <loop on="{Config::get('formats')}" as="$name,$format">
            <p>
                Export en format {$format['label']}
                <if test="{$format['max']!=-1}">
                    (maximum {$format['max']} notices)
                </if>
                <p test="{isset($format['description'])}">
                    <small>{$format['description']}</small>
                </p>
            </p>
            <hidden name="_format" value="$name" />
        </loop>
    </if>

    /*
        Sinon, affiche la liste des formats disponibles en indiquant la limite
        éventuelle à chaque fois.
    */    
    <else>
        <fieldset label="Choisissez le format du fichier à générer :">
            <holder class="radiolist">
                <fill values="$format">
                    <loop on="{Config::get('formats')}" as="$name,$format">
                        <holder class="radio">
                            <radio 
                                name="_format" 
                                value="$name" 
                                id="$name" 
                                label="{$format['label'].(($format['max']!=-1) ? (' (maximum '.$format['max'].' notices)') : '')}"
                            />
                            <p test="{isset($format['description'])}">
                                <small>{$format['description']}</small>
                            </p>
                        </holder>
                    </loop>
                </fill>
            </holder>
        </fieldset>
    </else>
    
    <def name="allowzip" value="{Config::get('allowzip')}" />
    <def name="allowmail" value="{Config::get('allowmail')}" />
    
    <fieldset test="{$allowzip || $allowmail}" label="{Config::get('forcemail') ? 'Envoi par messagerie :' : 'Options :'}">

        /* Option "Envoi par e-mail" */
        <div test="$allowmail">
            <fill values="$mail">
                <checkbox test="{! Config::get('forcemail')}" name="_mail" value="1" label="Envoyer le fichier obtenu par messagerie" />
            </fill>
                    
            /* Details de l'e-mail à envoyer */
            <holder class="vertical" test="$allowmail" id="_maildetails" style="margin-left: 1.3em;">
                <textbox name="_to" label="Destinataire(s) :" size="80" value="{htmlentities($to)}">
                    <p class="hint">Vous pouvez indquer plusieurs adresses en les séparant par une virgule.</p>
                </textbox>
                <br />
                <textbox 
                    name="_subject" 
                    label="Sujet :" 
                    value="{htmlentities($subject)}"  
                    size="80" />
                <br />
                <textbox 
                    name="_message" 
                    rows="10" 
                    cols="78" 
                    label="Message : " 
                    value="{htmlentities($message)}" />
            </holder>
        </div>
    
        /* Option "Archive ZIP" */
        <div test="$allowzip">
            <fill values="$zip">
                <checkbox test="{! Config::get('forcezip')}" name="_zip" value="1" label="Compresser le fichier et créer une archive au format ZIP" />
            </fill>
        </div>
    </fieldset>


    /* Champs cachés : équation, filename, sort, etc. */
    <loop on="$equations" as="$equation">
        <hidden name="_equation" value="{htmlspecialchars($equation)}" />
    </loop>
    
    <hidden name="confirm" value="1" />
    <loop on="{$this->request->copy()->keepOnly('_sort')->getParameters()}" as="$name,$value">
        <loop on="{(array)$value}" as="$value">
            <hidden name="$name" value="{htmlspecialchars($value)}" />
        </loop>
    </loop>
    
    /* Boutons du formulaire */
    <submit label="Lancer l'export..." />    
</form>

<script test="{$allowmail and ! Config::get('forcemail')}" type="text/javascript">
jQuery(document).ready
(
    function()
    \{
        var MailDetails=function(speed)
        \{ 
            if (!speed) speed='normal';
            if (jQuery('input[name=_mail]').is(':checked'))
            \{
                jQuery('#_maildetails').show(speed);
            \}
            else
            \{
                jQuery('#_maildetails').hide(speed);
            \}
        \};
        jQuery('input[name=_mail]').click(MailDetails);
        MailDetails();
    \}
);    
</script>